//
// Created by liuping on 2018/12/24.
//

#pragma once

#include <functional>
#include "co/co_task.h"
#include "thread/double_queue.h"

/*
 * 这个类拥有自己的
 * 1、协程池
 * 2、工作队列（双线程安全队列）
 */
template <typename MsgType>
class Worker {
 public:
    Worker() {
        msg_queue_.SetConsumeMsgHandler(std::bind(&CoTask::ResumeOne, &co_task_, std::placeholders::_1));
    }
    CoTask co_task_;
    DoubleQueue<MsgType> msg_queue_;
};
